home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
081-090
/
amok89
/
modprocheader
/
procedureheader.oed
< prev
next >
Wrap
Text File
|
1993-11-04
|
4KB
|
146 lines
/*------------------------------------------
:Program. ProcedureHeader.oed
:Author. Albert Weinert [awn]
:Address. Krähenweg 21, D-5000 Köln 30
:Version. V1.1
:Date. 09-May-1993
:Copyright. Albert Weinert 1993
:Language. ARexx
:Translator. Amiga RexxMast V1.15
:Contents. Erstellung und Erweiterung von Prozedure Headern
:Imports. <Importiertes, Name/ShortCut des Autors>
:Remarks. Braucht umbedingt den Oberon Editor "OEd" V2.33
:Remarks. Liest die ENV-Variable USER/SHORTCUT aus und nimmt dies als
:Remarks. Eintrag dafür im Header.
:Remarks. Damit es möglich ist für das Skript Procedure-Deklarationen zu erkennen
:Remarks. die sich über mehrere Zeilen erstrecken. *MÜSSEN* auf jedem Fall die
:Remarks. (); im Prozedur-Kopf vorhanden sein. Sonst arbeitet das Skript NICHT
:Remarks. korrekt.
:Bugs. In den einzelne Wörten im Shortcut dürfen diese nicht mit einer
:Bugs. Klammer beginnen. Mehrer hintereinanderstehende Leerzeichen werden
:Bugs. zu einem Zusammengerafft, beides Sachen die durch den OEd entstanden
:Bugs. sind.
:Usage. rx ProcedureHeader.oed CREATE ; Erstellt Procedure-Header für Oberon
:Usage. rx ProcedureHeader.oed CREATE REXX; Erstellt Procedure-Header ARexx
:Usage. rx ProcedureHeader.oed UPDATE ; erstellt eine neue Update-Zeile mit Datum
:Usage. z.B. rx ProcedureHeader.oed ADD :Input. 15 ; erstellt unter dem
:Usage. alten :Input. Eintrag einen neune und setzt den Cursor auf XPos
:Usage. 15 relativ zum Beginn. Funktioniert für alle Einträge.
:History. 0.0 [awn] 03-May-1993 : Erstellt
:History. 1.0 [awn] 04-May-1993 : Voll Funktionfähig
:History. 1.1 [awn] 09-May-1993 : BugFix: Beim ADD wurde der Cursor nicht
:History. auf die richtige X-Position gesetzt.
--------------------------------------------*/
options results
address 'OEd'
parse arg what entry xpos
UPPER what
readed=0
CALL GetUserENV("SHORTCUT");
short=readed
IF what = UPDATE THEN DO
'findstr "PROCEDURE"';'prev';
'findstr "-----*"';'next';
'findstr ":Update."';'prev';
'return';
'write ":Update. "';
'write' space(date(),1,"-");
'write " "'
CALL WriteString(short); write "-";
'write " "'
END;
IF what = ADD THEN DO
findstr "PROCEDURE";prev
findstr "-----*";
next
findstr entry
prev
'return'
getposx
old = result
'write' entry
xpos=old+xpos-3
gotox xpos
END;
IF what = CREATE THEN DO
UPPER entry
findstr "PROCEDURE";prev;
IF entry = REXX THEN wleft
getposx;
procxpos=result;
IF entry = "" THEN DO
findstr ")";next;
findstr ";";next;
END;
'return';
'gotox' procxpos;
IF entry = REXX THEN
'write "/*------------------------------------------"';
ELSE
'write "(*------------------------------------------"';
'return';
'write " :Input."';
'return';
'write ":Output."';
'return';
'write ":Semantic."';
'return';
'write ":Note."';
'return';
getposx;
xpos=result;
'write ":Update. "';
'write' space(date(),1,"-");
'write " "'
CALL WriteString(short); write "-";
'write " "'
'write "erstellt."';
'return';left;left;
IF entry = REXX THEN
'write "--------------------------------------------*/"';
ELSE
'write "--------------------------------------------*)"';
DO I= 1 TO 5;
'up';
END;
xpos=xpos+15-3;
'gotox' xpos;
what=""
END;
EXIT
GetUserEnv:PROCEDURE EXPOSE readed
PARSE ARG envv
filename="ENV:USER/"||envv
IF OPEN(fhandle,filename,"READ") THEN DO
readed=READLN(fhandle);
CALL CLOSE(fhandle);
END;
ELSE readed = Unset
RETURN
WriteString:PROCEDURE
PARSE ARG vari
i=1
DO FOREVER
word=WORD(vari,i)
i=i+1
IF word="" THEN BREAK
'write' word
'write " "'
END
RETURN